package com.cskaoyan.javase._2inner._2static._0introduction;

/**
 * 静态内部类的成员特点和成员内部类大不相同
 * 因为静态内部类本身就是一个独立的类,只不过将它放入了一个类的类体中
 * 借助外围类来保护自己罢了
 * 所以静态内部类的成员特点和普通类,没有任何区别.
 * 静态内部类和外围类没有任何依赖关系.
 *
 * 成员内部类可以看成一个类的成员，
 * 那么静态内部类应该就大致能看成一个类的静态成员了吧？
 * 实际上，我更倾向于不这么看待。
 * 应该来说，静态内部类，非常特殊的，它甚至不像是一个内部类。
 * 关于我为什么这么说，我们继续往下学，相信你就明白了。
 *
 * 语法：
 * //外围（普通）类
 * [访问权限修饰符] class EnclosedClazz{
 *   [访问权限修饰符] static class NestedClazz{
 *  }
 * }
 * 特点:
 * 依然主要从以下几个角度分析：
 *      1.访问权限修饰符
 *      只要是成员位置的内部类,包括成员内部类,静态内部类
 *          他们都具有四种访问级别.
 *
 *      2.成员特点
 *          和普通类别无二致,一模一样
 *
 *
 *      3.继承和实现
 *          可以继承,可以实现
 *          但需要注意,如果继承内部类,只能继承静态内部类
 *
 * @since 09:28
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
}

// 外围类
class EnclosedClazz {
    static class A {
    }

    // 静态内部类
    static class NestedClazz extends A {
        int a;
        private int b = 10;
        static int c = 20;
        static final int D = 30;

        static {
        }

        {
        }

        public NestedClazz() {
        }

        public void test() {
        }

        public static void testStatic() {
        }

    }
}